1. Field of the Invention
This invention relates to decoding a concatenated convolutional-encoded and block-encoded signal. In particular, the invention is applicable to decoding concatenated outer code blocks, eg Reed-Solomon, and convolutional or pragmatic trellis coded modulation (PTCM) data using constellations of higher order than Quadrature Phase Shift Keying (QPSK). More particularly it is applicable to such modulation systems when the symbol mapping results in more than 1 outer code block carrying the bits of each channel symbol.
2. Description of the Related Art
An inner code often implemented as a convolutional code is performed by, for example, a Viterbi decoder, and from Collins [TIEEE on Communications, Vol. 42, No. 12 December 1993, pp 1785-1794] and Krieger [U.S. Pat. No. 6,606,724]. Collins teaches that the results of the outer decoder can be used by a second decoder chain in particular to produce a beneficial change in the output of its Viterbi stage when the outer code indicates known correct data. Krieger also teaches the same method as Collins and also teaches that this process can be iterated to provide further performance improvements. Krieger also provides descriptions of apparatus whereby the effect may be realised, in particular in FIGS. 2 and 5 thereof. FIG. 2 of Krieger illustrates a mechanism that switches the input of a second Viterbi decoder to recoded correct bits only when the outer code indicates known correct data. This action makes redundant any soft metrics data used by the Viterbi decoder and so these are set to some default extreme value. Krieger FIG. 5 illustrates an alternative mechanism that achieves broadly similar results. In FIG. 5 there is no convolutional recoding so that the Viterbi decoder is not switched to corrected input data but retains the noisy data. Its Viterbi decoder is also driven to take previously determined actions dependent on an indication from the outer coder. These actions involve modifying the weight calculations within the Viterbi decoder. In neither Krieger FIG. 2 or 5 is there any specific provision that causes the second decoder chain to act differently from the first on the data which is marked as incorrect so that any beneficial result happens indirectly as a result of the direct action on the correct bits.
A modified Viterbi decoder and a method for improved decoding of concatenated codes using the modified Viterbi decoder are known from GB-A-2400002.
In GB-A-0307092.7, that disclosure in second and subsequent iterations using the modified Viterbi decoder, coding decisions are constrained by data which has already been verified by correct block decoding such as Reed-Solomon decoding in a previous iteration. However, in known Forward Error Correction (FEC) decoders, including both Digital Video Broadcasting-Digital Satellite News Gathering (DVB-DSNG) and Digital Video Broadcasting-Terrestrial (DVB-T), for constellations higher than QPSK, a soft metric generator within the decoder generates input to the Viterbi decoder from the received channel symbols. That is, with Binary Shift Keying (BPSK) or QPSK the soft metric is simply an amplitude of a signal in an in-phase (I) or quadrature (Q) sense. The soft metric generator is then trivial. In a higher order constellation the relationship is much more complex.
Using, for example, 8 Phase Shift Keying (8PSK) rate ⅔ according to the DVB-DSNG European Telecommunications Standards Institute (ETSI) specification EN 301-210, a coded constellation is constructed by taking two input bits from different bytes in a data stream. A first of these two input bits is applied to an input of a rate ½ convolutional encoder of constraint length 7, using polynomials 133_8 and 171_8, where _8 signifies base 8, as used in the art for such polynomials. Since the encoder is rate ½, two coded bits are obtained, which are denoted C1 and C2 herein. A second of the two input bits, which is not passed to the convolutional encoder, is denoted U1. This results in a symbol of three bits, one uncoded U1, and two coded C2, C1, giving eight possible combinations, which may be mapped to a constellation of eight points—the ETSI specification uses a particular mapping to 8PSK.
When received at a decoder, the demodulated signal contains noise generated during transmission so that a received symbol can lie anywhere on an IQ plane—but with a high probability of being near to a point which was actually transmitted. A soft metric generator is provided to generate two soft metrics to feed to a rate ½ Viterbi decoder. The soft metrics form a noisy convolutional-encoded data stream to be decoded by the Viterbi decoder. The Viterbi decoder takes these soft metrics (which are signal levels representative of convolutional encoded data, with some random noise added) and produces a stream of Viterbi-decoded data bits. For a constellation of higher order than two, each IQ symbol contains more than two bits of channel information.
In order to recover the uncoded bits in a conventional PTCM decoder, the following steps are performed: a) Generate soft metrics from the received symbols. b) Decode the convolutional-encoded bits to produce Viterbi-decoded bits. c) Re-encode these Viterbi-decoded bits and use these conditionally to demap the uncoded bits (where “uncoded” means “un-convolutional-encoded”.) d) Take the Viterbi-decoded bits and the uncoded bits, and align them correctly. However, the calculation of soft metrics in the prior art does not take into account that some of the decoded bits are known to be correct.